export default ({ get, post, put, del }, urls) => {
  const gzlUrl = urls.gzlUrl
  return new class {
    // 首页数据
    indexData () {
      return get(`${gzlUrl}/data`)
    }

    // 发送登录验证码
    sendLoginMsg (phone) {
      return post(`${gzlUrl}/user/login/sendMsg/${phone}`)
    }

    // 验证码登录
    loginByMsg (params) {
      return post(`${gzlUrl}/user/loginByMsg`, params)
    }

    // 登录
    login (params) {
      const { phone, password } = params
      return post(`${gzlUrl}/user/login`, {
        phone: phone,
        password: password
      })
    }

    // 获取单据类型
    getFormTypes () {
      return get(`${gzlUrl}/activity/forms/types`)
    }

    // 用户列表
    userList (params) {
      return get(`${gzlUrl}/user`, params)
    }

    // 添加用户
    addUser (params) {
      return post(`${gzlUrl}/user`, params)
    }

    // 编辑用户
    editUser (id, params) {
      return put(`${gzlUrl}/user/${id}`, params)
    }

    // 修改密码
    changePasswod (id, password) {
      return put(`${gzlUrl}/user/changePassword/${id}/${password}`)
    }

    // 用户修改密码
    changePasswodByUser (params) {
      return put(`${gzlUrl}/user/changePasswordByUser`, params)
    }

    // 获取用户详情
    getUser (id) {
      return get(`${gzlUrl}/user/${id}`)
    }

    // 用户拥有的角色
    getUserRoles (uid) {
      return get(`${gzlUrl}/role/userhasRoles/${uid}`)
    }

    // 用户权限节点
    getUserNodes () {
      return get(`${gzlUrl}/role/user`)
    }

    // 角色列表
    queryRoleList (params) {
      return get(`${gzlUrl}/role`, params)
    }

    // 节点列表
    queryNodeList () {
      return get(`${gzlUrl}/role/nodes`)
    }

    // 添加角色
    addRole (params) {
      return post(`${gzlUrl}/role`, params)
    }

    // 更新角色
    updateRole (id, params) {
      return put(`${gzlUrl}/role/${id}`, params)
    }

    // 查询角色
    roleDetail (id) {
      return get(`${gzlUrl}/role/${id}`)
    }

    // 删除角色
    removeRole (id) {
      return del(`${gzlUrl}/role/${id}`)
    }

    // 为用户绑定角色
    roldBind (uid, params) {
      return post(`${gzlUrl}/role/bind/${uid}`, params)
    }

    // 审批
    defaultFormList (params) {
      return post(`${gzlUrl}/activity/forms`, params)
    }

    // 提交默认表单
    addDefaultForm (params) {
      return post(`${gzlUrl}/activity/form`, params)
    }

    // 获取默认表单
    getDefaultForm (id) {
      return get(`${gzlUrl}/activity/form/${id}`)
    }

    // 编辑默认表单
    editDefaultForm (id, params) {
      return put(`${gzlUrl}/activity/form/${id}`, params)
    }

    // 删除默认表单
    removeDefaultForm (id) {
      return del(`${gzlUrl}/activity/form/${id}`)
    }

    // 进度列表
    progressList (params) {
      return post(`${gzlUrl}/activity/progress`, params)
    }

    // 进度详情
    processDetail (id) {
      return get(`${gzlUrl}/activity/progress/${id}`)
    }

    // 订单审批数据
    formProcess (fid) {
      return get(`${gzlUrl}/activity/progress/form/${fid}`)
    }

    // 提交审批
    formSubmit (id, formType) {
      return post(`${gzlUrl}/activity/submit/${id}/${formType}`)
    }

    // 执行审核
    taskApply (id, params) {
      return put(`${gzlUrl}/activity/apply/${id}`, params)
    }

    // 添加审批流摸板
    addFlowTemplate (params) {
      return post(`${gzlUrl}/flow/template`, params)
    }

    // 编辑审批流摸板
    editFlowTemplate (params) {
      return put(`${gzlUrl}/flow/template`, params)
    }

    // 摸板列表
    templateList (params) {
      return get(`${gzlUrl}/flow/template`, params)
    }

    // 删除摸板
    removeTemplate (id) {
      return del(`${gzlUrl}/flow/template/${id}`)
    }

    // 摸板详情
    getTemplate (id) {
      return get(`${gzlUrl}/flow/template/${id}`)
    }

    // 添加流程
    addFlow (params) {
      return post(`${gzlUrl}/flow`, params)
    }

    // 删除摸板
    removeFlow (id) {
      return del(`${gzlUrl}/flow/${id}`)
    }

    // 流程列表
    flowList (params) {
      return get(`${gzlUrl}/flow`, params)
    }

    // 流程详情
    getFlow (id) {
      return get(`${gzlUrl}/flow/${id}`)
    }

    // 编辑流程
    editFlow (params) {
      return put(`${gzlUrl}/flow`, params)
    }
  }
}
